﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.SessionState;
using Terrae.GUI.Contrato;
using Terrae.GUI.Presentador;
using System.ServiceProcess;

namespace Terrae.GUI.Vista
{
    public partial class ModificarVariable : System.Web.UI.Page, 
        IContratoModificarVariable
    {
        #region Atributos

        /// <summary>
        /// Instancia del presentador ModificarVariable.
        /// </summary>
        private PresentadorModificarVariable _presentador;
        private string variable, serverNombre;
        private ServiceControllerStatus status;

        #endregion Atributos

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["Usuario"] == null)
            {
                Response.Redirect("Home.aspx");
            }
            else
            {
                if (!IsPostBack)
                {
                    _presentador.ConsultarVariables();
                }
            }
        }

        #region Constructor

        public ModificarVariable()
        {
            _presentador = new PresentadorModificarVariable(this);
        }

        #endregion Contructor

        #region Métodos

        #region Boton Agua

        /// <summary>
        /// Acción del boton agua, muestra las acciones a realizar.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void agua_Click(object sender, ImageClickEventArgs e)
        {
            _presentador.Service(serverNombre, status);

            if (_presentador.RegarArduino(variable) == true)
            {
                mensajeExito.Visible = true;
                mensajeExito.Text = "Se ha efectuado el riego con éxito";
            }
            else
            {
                mensajeError.Visible = true;
                mensajeError.Text = "No se pudo efectuar el riego";
            }

            _presentador.Service(serverNombre, status);
        }

        #endregion Boton Agua

        #region Boton Fertilizante

        /// <summary>
        /// Acción del boton fertilizante, muestra las acciones a realizar.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void fertilizante_Click1(object sender, ImageClickEventArgs e)
        {
            _presentador.Service(serverNombre, status);

            if (_presentador.RegarArduino(variable) == true)
            {
                mensajeExito.Visible = true;
                mensajeExito.Text = "Se ha efectuado el riego con éxito";
            }
            else
            {
                mensajeError.Visible = true;
                mensajeError.Text = "No se pudo efectuar el riego";
            }

            _presentador.Service(serverNombre, status);
        }

        #endregion Boton Fertilizante

        #endregion Métodos

        #region Implementación del IContratoModificarVariable

        public Label MensajeExito
        {
            get { return mensajeExito; }
            set { mensajeExito = value; }
        }

        public Label MensajeError
        {
            get { return mensajeError; }
            set { mensajeError = value; }
        }

        public HttpSessionState Sesion
        {
            get { return Session; }
        }

        #endregion Implementación del IContratoModificarVariable
    }
}